package it.fc.service.interfaces;

import java.util.List;

import it.fc.bean.GiocatoriBean;
import it.fc.bean.SquadraBean;
import it.fc.bean.UserBean;
import it.fc.exceptions.FcException;
import it.fc.service.Service;

/**
 * Interfaccia che racchiude le firme dei metodi del DB
 */
public interface IDbService extends Service {

    /**
     * User methods (CRUD)
     */
    public void insertUser(UserBean user) throws FcException;
    public void deleteUser(int idUser) throws FcException;
    public void updateUser(UserBean user) throws FcException;
    public UserBean findUserByUsername(String username) throws FcException;
    public List<UserBean> getUsers() throws FcException;
    public void activateUser(String uuid);

    /**
     * Squadra methods
     */
    public int insertSquadra(int idUser, String nome) throws FcException;
    public List<GiocatoriBean> getSquadra(int idUSer, String role) throws FcException;
    public SquadraBean getSquadraByUser(int idUser) throws FcException;
    public SquadraBean getSquadraByName(String name) throws FcException;
    public List<GiocatoriBean> getSquadra(int idUSer) throws FcException;
    
    /**
     * Giocatore methods
     * 
     */
    
    public void deletePlayer(int idgiocatore) throws FcException;
    public List<GiocatoriBean> getGiocatoriList() throws FcException;
    public List<GiocatoriBean> getGiocatoriRemaining(List<GiocatoriBean> myTeam, String role) throws FcException;
    public GiocatoriBean findCalciatore(int idCalciatore) throws FcException;               
    public int insertCalciatori(int idSquadra, List<Integer> calciatori) throws FcException;
    public void deleteCalciatori(int idSquadra) throws FcException;
    public List<GiocatoriBean> getGiocatoriList(String role) throws FcException;
    public void insertPlayer(GiocatoriBean g) throws FcException;                   

}
